Expand list of Docker images - #66
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
New dependent images bypass pre-merge builds, and several platform notes are outdated.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Expands public CI coverage across eight additional Linux release platforms.
Changes:
- Adds base, compiler, and Boost/Qt images.
- Documents the expanded image matrix.
- Extends manual image contract smoke tests.
File summaries
| File | Description |
|---|---|
public-images/ubuntu22.04/base/Dockerfile |
Adds Ubuntu 22.04 base. |
public-images/ubuntu22.04/gfortran11/Dockerfile |
Adds GCC/GFortran 11. |
public-images/ubuntu22.04/gfortran11-boost-qt6/Dockerfile |
Adds Boost and Qt6. |
public-images/ubuntu26.04/base/Dockerfile |
Adds Ubuntu 26.04 base. |
public-images/ubuntu26.04/gfortran15/Dockerfile |
Adds GCC/GFortran 15. |
public-images/ubuntu26.04/gfortran15-boost-qt6/Dockerfile |
Adds Boost and Qt6. |
public-images/rocky9/base/Dockerfile |
Adds Rocky Linux 9 base. |
public-images/rocky9/gfortran11/Dockerfile |
Adds GCC/GFortran 11. |
public-images/rocky9/gfortran11-boost-qt5/Dockerfile |
Adds Boost and Qt5. |
public-images/rocky10/base/Dockerfile |
Adds Rocky Linux 10 base. |
public-images/rocky10/gfortran14/Dockerfile |
Adds GCC/GFortran 14. |
public-images/rocky10/gfortran14-boost-qt6/Dockerfile |
Adds Boost and Qt6. |
public-images/fedora43/base/Dockerfile |
Adds Fedora 43 base. |
public-images/fedora43/gfortran15/Dockerfile |
Adds GCC/GFortran 15. |
public-images/fedora43/gfortran15-boost-qt6/Dockerfile |
Adds Boost and Qt6. |
public-images/fedora44/base/Dockerfile |
Adds Fedora 44 base. |
public-images/fedora44/gfortran16/Dockerfile |
Adds GCC/GFortran 16. |
public-images/fedora44/gfortran16-boost-qt6/Dockerfile |
Adds Boost and Qt6. |
public-images/debian12/base/Dockerfile |
Adds Debian 12 base. |
public-images/debian12/gfortran12/Dockerfile |
Adds GCC/GFortran 12. |
public-images/debian12/gfortran12-boost-qt6/Dockerfile |
Adds Boost and Qt6. |
public-images/debian13/base/Dockerfile |
Adds Debian 13 base. |
public-images/debian13/gfortran14/Dockerfile |
Adds GCC/GFortran 14. |
public-images/debian13/gfortran14-boost-qt6/Dockerfile |
Adds Boost and Qt6. |
IMAGES.md |
Catalogues platforms and toolchains. |
.github/workflows/smoke-test-runners.yml |
Adds image contract checks. |
Review details
- Files reviewed: 26/26 changed files
- Comments generated: 5
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| - image: ubuntu22.04-gfortran11-boost-qt6 | ||
| declares: ubuntu22.04/gfortran11-boost-qt6 | ||
| cxx: g++-11 | ||
| cxx-major: '11' |
There was a problem hiding this comment.
the smoke-test-runners should not go through all images.
It's task is about quickly testing if the runner-groups and the S3 storage work.
Especially if people suspect connection issues for failing tests, they can just dispatch this test.
-----–––––––––––-------------------------
The testing of dependents is already adressed
de6e225 to
29b3c3b
Compare
|
Hey @marcosbento, Thank you for this great addition. If we are so drastically expanding the number of images I would like to add a few more tests.
|
|
@mcocdawc , I did some expanding of the tests, ensuring also that "derived" images are rebuild every time the "base" image is updated. Please have a look at my latest commits. This is just all draft, of course... Hopefully it will inspire you! :-) |
| - image: ubuntu22.04-gfortran11-boost-qt6 | ||
| declares: ubuntu22.04/gfortran11-boost-qt6 | ||
| cxx: g++-11 | ||
| cxx-major: '11' |
There was a problem hiding this comment.
the smoke-test-runners should not go through all images.
It's task is about quickly testing if the runner-groups and the S3 storage work.
Especially if people suspect connection issues for failing tests, they can just dispatch this test.
-----–––––––––––-------------------------
The testing of dependents is already adressed
ed36cb9 to
87f2b53
Compare
|
@mcocdawc, rebased and trimmed the changes, which are now solely focused on extending the list of |
| unpacked.mkdir() | ||
| with tarfile.open(staging / "source.tgz") as tar: | ||
| tar.extractall(unpacked, filter="data") | ||
| tar.extractall(unpacked) |
There was a problem hiding this comment.
is there a reason to remove the filter? It's slightly safer to have it.
There was a problem hiding this comment.
In order to align the Ubuntu 22.04 image with the existing Ubuntu 22.04 VM the Dockerfile installs Python 3.11, and unfortunately Python 3.11 doesn't support the 'filter' parameter.
I have amend the commit that does that specific one line change to document the reason behind the change.
There was a problem hiding this comment.
Actually I read a bit on, because I was surprised that it did work before even with python 3.11.
Indeed it was backported to 3.11.4.
For the test it's not so important, but for the future (un)taring something that comes potentially from user input the option is great. And code from this repo possibly has to do that.
I would rather bump the minimum required version in the pyproject toml to 3.11.4 and keep filter="data"
Or is there a hard blocker that we cannot do that? Then I am also fine to go without the filter argument.
There was a problem hiding this comment.
🟡 Changes recommended
Three RPM-based base images need DNF conflict handling for replacing curl-minimal with curl.
Get a fresh assessment by requesting another Copilot review.
Review details
- Files reviewed: 27/27 changed files
- Comments generated: 3
- Review effort level: Balanced
|
btw: the fact that https://github.com/ecmwf/ci-infrastructure/actions/runs/35240521586 fails for the new images is expected. Of course they cannot be downloaded if they were not uploaded yet. (which they will be, once they are in master). |
|
Hey @marcosbento , I made a few important changes in #71
|
358b1e5 to
8950eec
Compare
|
Wonderful, the only remaining question is still the |
ff69da3 to
bcc0a6f
Compare
|
Regarding the filter data issue, here is the context for the "choices" that were made:
|
TarFile.extractall(filter="data") was added in Python 3.12 and backported to 3.11.4 (PEP 706), and the HPC transfer test relies on it. Raise the floor from 3.11 to 3.11.4 in pyproject.toml, and align the interpreter gates and the documentation that state it.
bcc0a6f to
6a15b95
Compare
|
Hi @mcocdawc As agreed in our last chat, I have implemented the following:
|
mcocdawc
left a comment
There was a problem hiding this comment.
Thank you very much! You can merge whenever you like.
Description
As per PR title -- each commit adds a new distro image.
The content of the images was extracted from the information in
runners-infraand at the same time trying to mimic the already existing dockerfiles.Contributor Declaration
By opening this pull request, I affirm the following: